#ifndef BASEELEMENT_H
#define BASEELEMENT_H

#include <QString>
#include <QObject>
#include <QtXml/QDomNode>

#include "elementimage.h"
#include "xmlhelper.h"

// Базовый элемент
class BaseElement : public QObject
{
    Q_OBJECT

protected:    
    //Векторное изображение
    ElementImage* image;

public:
     BaseElement();
     virtual ~BaseElement();

    // =========== Fields =========
    //Имя элемента
    QString name;

    //Описание
    QString description;

    //Время исполнения
    int ticTime;

    // =========== Methods =========

    ElementImage* getImage();

    //Перевести элемент в начальное состояние
    virtual void refresh();

    //Загрузить дополнительные данные из файла схемы
    virtual void initData(const QDomNode& additionals);

    //Сохранить нужные свойства в конфиг
    virtual void saveData(QDomNode& additionals);
};

#endif // BASEELEMENT_H
